$(function () {
    // 导入layui的form表单
    const form = layui.form
    const layer = layui.layer
    // 自定义表单校验规则
    form.verify({
        nickname: function (value, item) {
            if (value.length < 2 || value.length > 8) {
                return '用户昵称长度为2-8'
            }
        }
    })
    // 调用初始化
    initUserInfo();

    // 初始化用户的信息
    function initUserInfo () {
        $.ajax({
            method: 'GET',
            url: '/my/userinfo',
            success: function (res) {
                if (res.status !== 0) {
                    return layer.msg('获取用户信息失败')
                }
                // console.log(res);
                // 调用 form.val() 快速为表单赋值
                form.val('formUserInfo', res.data);
            }
        })
    }
    // 重置按钮的处理函数
    $('#btnReset').on('click', function (e) {
        // 先阻止默认的重置按钮事件，reset按钮默认会清空所有数据
        e.preventDefault()
        // 调用初始化函数，恢复数据
        initUserInfo();
    })

    // 监听表单的提交事件，注意是监听表单，而不是提交按钮
    // 因为表单里面的submit按钮就是会触发表单的提交事件
    $('.layui-form').on('submit', function (e) {
        // 阻止表单的默认提交行为，使用ajax
        e.preventDefault()
        // 发起ajax请求
        $.ajax({
            method: 'POST',
            url: '/my/userinfo',
            // 序列化，快速拿到form表单的数据对象
            data: $(this).serialize(),
            success: function (res) {
                if (res.status != 0) {
                    return layer.msg('修改用户信息失败')
                }
                layer.msg('修改用户信息成功')
                // 修改成功，重新发起请求渲染表单
                initUserInfo()
                // 在iframe里面调用父页面的方法，重新渲染用户的头像和用户信息
                window.parent.getUserInfo()
            }
        })
    })
})

